%%
%% This is file `textpos.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% textpos.dtx  (with options: `package')
%% Textpos: absolute positioning of text on the page
%% This software is copyright, 1999, 2001--2003, Norman Gray.
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License
%% as published by the Free Software Foundation; either version 2
%% of the License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful,
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%% GNU General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
%%
%% Author: Norman Gray, norman@astro.gla.ac.uk.
%% Department of Physics and Astronomy, University of Glasgow, UK
%%
%% See the file LICENCE for a copy of the GPL.
%% You can also find an online copy at http://www.gnu.org/copyleft/gpl.html .

%%% Source: $Id: textpos.dtx,v 1.15 2003/09/07 17:45:57 norman Exp $
\def\ParseRCSDate$#1: #2 #3 ${\def\TP@Date{#2}}
\ParseRCSDate$Date: 2003/09/07 17:45:57 $
\def\filename{textpos}
\def\fileversion{1.4}  %%VERSION%%
\def\filedate{\TP@Date}
\def\docdate{\TP@Date}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{textpos}[\filedate\space v\fileversion]
\typeout{Package: `textpos' \fileversion\space<\filedate>}
\newif\ifTP@showboxes
\TP@showboxesfalse
\DeclareOption{showboxes}{\TP@showboxestrue}
\newif\ifTP@showtext
\TP@showtexttrue
\DeclareOption{noshowtext}{\TP@showtextfalse}
\newif\ifTP@abspos
\TP@absposfalse
\DeclareOption{absolute}{\TP@abspostrue}
\newif\ifTP@overlay
\TP@overlayfalse
\DeclareOption{overlay}{\TP@overlaytrue}
\newif\ifTP@chatter
\TP@chattertrue
\DeclareOption{quiet}{\TP@chatterfalse}
\DeclareOption{verbose}{\TP@chattertrue}
\ProcessOptions
\ifTP@abspos
  \RequirePackage{everyshi}
\fi
\newbox\TP@textbox
\ifTP@abspos
  \newbox\TP@holdbox            % starts off void
  \AtEndDocument{\ifvoid\TP@holdbox \else \hbox{}\fi}
\fi
\newdimen\TPHorizModule
\newdimen\TPVertModule
\def\TPGrid{%
  \@ifnextchar[{\@tempswatrue\TP@Grid}{\@tempswafalse\TP@Grid[0pt,0pt]}}
\def\TP@Grid[#1,#2]#3#4{
  \setlength{\@tempdima}{#1}
  \multiply\@tempdima by 2
  \TPHorizModule=\paperwidth
  \advance\TPHorizModule by -\@tempdima
  \divide\TPHorizModule by #3
  \setlength{\@tempdima}{#2}
  \multiply\@tempdima by 2
  \TPVertModule=\paperheight
  \advance\TPVertModule by -\@tempdima
  \divide\TPVertModule by #4
  \ifTP@chatter
    \typeout{Grid set #3 x #4 = \the\TPHorizModule\space x \the\TPVertModule}%
  \fi
  \ifTP@abspos\if@tempswa \textblockorigin{#1}{#2}\fi\fi
}
\TPGrid{16}{16}
\newdimen\TPboxrulesize
\setlength{\TPboxrulesize}{0.4pt}
\def\showtextsize{\normalsize}
\ifTP@abspos
  \newdimen\TP@ox
  \newdimen\TP@oy
\fi
\def\textblockorigin#1#2{%
  \ifTP@abspos
    \TP@ox=-1in    \addtolength\TP@ox{#1}
    \TP@oy=-1in    \addtolength\TP@oy{#2}
    \ifTP@chatter\typeout{TextBlockOrigin set to #1 x #2}\fi
  \else
    \PackageError{textpos}
      {The \protect\textblockorigin\space command\MessageBreak
       may only be used if the package was given\MessageBreak
       the`absolute' option when it was invoked}
      {If you want to use the \protect\textblockorigin\space command, then
         \MessageBreak
       invoke the package with the syntax\MessageBreak
       \protect\usepackage[absolute]{textpos}}
  \fi
  }
\def\textblocklabel#1{\gdef\TP@textblocklabel{#1}}
\def\textblockcolour#1{%
  \@ifundefined{color}%
    {\gdef\TP@blockcolour{}}% ignore argument, switch off colour blocking below
    {%
      \def\@tempa{#1}
      \gdef\TP@blockcolour{#1}
      \ifx\TP@defaultblockcolour\@undefined
        \gdef\TP@defaultblockcolour{#1}
      \fi
    }}
\def\TP@blockcolour{}           % safe initial default
\let\textblockcolor\textblockcolour
\let\tekstblokkulur\textblockcolour
\def\textblock#1{%
  \@tempdima=#1\TPHorizModule
  \ifvmode\else
    \ifmmode
      \PackageError{textpos}
        {You cannot use textblock in maths mode}
        {You may use the textblock environment only in \MessageBreak
         vertical mode or horizontal mode (when it triggers a\MessageBreak
         new paragraph).  You cannot use it in maths mode.}
    \else % in horizontal mode
      \par % force us back into vertical mode
    \fi
  \fi
  \@ifnextchar[{\TP@textblock}{\TP@textblock[0,0]}%] bracematch
}
\def\TP@textblockstar#1{%
  \setlength{\@tempdima}{#1}
  \ifvmode\else
    \PackageWarning{textpos}{environment textblock* not in vertical mode.
      \MessageBreak
      Environment textblock* should not have any text\MessageBreak
      or printable material appearing before it.\MessageBreak
      Alignment may work out wrongly.}%
    \par % force us back into vertical mode
  \fi
  \@ifnextchar[{\TP@textblock}{\TP@textblock[0,0]}%] bracematch
}
\expandafter\let\csname textblock*\endcsname\TP@textblockstar
\newtoks\TP@tbargs
\def\TP@textblock[#1,#2](#3,#4){%
  \TP@tbargs={{#1}{#2}{#3}{#4}}%
  \setbox\TP@textbox=\vbox\bgroup
    \ifTP@showboxes
      \hrule height0pt depth \TPboxrulesize
      \vskip-\TPboxrulesize
    \fi
    \hsize=\@tempdima
    \textwidth\hsize \columnwidth\hsize \linewidth\hsize
  }
\def\endtextblock{\global\@tempswatrue\TP@commonendtextblock}
\@namedef{endtextblock*}{\global\@tempswafalse\TP@commonendtextblock}
\newdimen\TP@prevdepth
\def\TP@commonendtextblock{%
  \ifTP@showboxes
    \vskip-\TPboxrulesize
    \hrule depth 0pt height \TPboxrulesize
  \fi
  \egroup
  \TP@prevdepth=\prevdepth
  \prevdepth=-1000pt  % = \nointerlineskip
  \expandafter\TP@endtextblock\the\TP@tbargs
  }
\def\TP@endtextblock#1#2#3#4{%
  \if@tempswa % modular/unstarred endtextblock
    \@tempdima=#3\TPHorizModule
    \@tempdimb=#4\TPVertModule
  \else % absolute/starred endtextblock
    \setlength{\@tempdima}{#3}
    \setlength{\@tempdimb}{#4}
  \fi
  \@tempdimc=-#1\wd\TP@textbox
  \advance\@tempdima\@tempdimc
  \@tempdimc=-#2\ht\TP@textbox
  \advance\@tempdimb\@tempdimc
  \ifTP@abspos
    \advance\@tempdima by \TP@ox
    \advance\@tempdimb by \TP@oy
  \fi
  \setbox0=\vbox to 0pt{\vskip\@tempdimb
    \hbox to 0pt{\hskip\@tempdima
    \ifx\TP@blockcolour\@empty \else
      {% defaults for TP@blockcolour mean we should never get here if
       % the {color} package is not loaded
        \color{\TP@blockcolour}%
        \color@block{\wd\TP@textbox}{\ht\TP@textbox}{\dp\TP@textbox}%
      }%
    \fi
    \ifx\TP@defaultblockcolour\@undefined \else
      \global\let\TP@blockcolour\TP@defaultblockcolour
    \fi
    \ifTP@showboxes \vrule width \TPboxrulesize \hskip -\TPboxrulesize \fi
    \ifTP@showtext
      \box\TP@textbox
    \else
      \vbox to\ht\TP@textbox{%
        \ifTP@showboxes
          \hrule depth 0pt height \TPboxrulesize \vskip-\TPboxrulesize
        \fi
        \vskip\smallskipamount
        \hbox to\wd\TP@textbox{%
          \ifx\TP@textblocklabel\undefined
            \hbox{}%
          \else
            \hskip\smallskipamount
            \fbox{\showtextsize \TP@textblocklabel}%
            \global\let\TP@textblocklabel\undefined
          \fi
          \hss
        }%
        \vss
        \ifTP@showboxes
          \vskip -\TPboxrulesize
          \hrule depth 0pt height \TPboxrulesize
        \fi
      }%
    \fi
    \ifTP@showboxes \hskip -\TPboxrulesize \vrule width \TPboxrulesize \fi
    \hss}%
  \vss
  }%  end of box0
  \ifTP@abspos
    \global\setbox\TP@holdbox\vbox{%
      \box0
      \unvbox\TP@holdbox
    }%
  \else
    \box0
    \prevdepth=\TP@prevdepth
  \fi
  }%
\ifTP@abspos
  \ifTP@overlay
    \EveryShipout{%
      \global\setbox\@cclv\vbox{%
        \vbox to 0pt{\ifvbox\@cclv \unvbox\@cclv \else \box\@cclv \fi \vss}%
        \unvbox\TP@holdbox      % TP@holdbox is now void
      }
    }%
  \else
    \EveryShipout{%
      \global\setbox\@cclv\vbox{%
        \unvbox\TP@holdbox
        \ifvbox\@cclv \unvbox\@cclv \else \box\@cclv \fi
      }%
    }%
  \fi
  \textblockorigin{0pt}{0pt}%
\fi
\endinput
%%
%% End of file `textpos.sty'.
